#if !defined(AFX_ANIMATELIST_H__C723CB61_2B66_11D8_8BF6_0002553118A0__INCLUDED_)
#define AFX_ANIMATELIST_H__C723CB61_2B66_11D8_8BF6_0002553118A0__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// AnimateList.h : header file
//
typedef CArray< int, int > CIntArray;
/////////////////////////////////////////////////////////////////////////////
// CAnimateList view

class CAnimateList : public CView
{
public:
	CAnimateList();           // protected constructor used by dynamic creation
	virtual ~CAnimateList();
	DECLARE_DYNCREATE(CAnimateList)

// Attributes
public:

// Operations
public:
	void SortSelectedPages();
	CIntArray & GetSelectedPages()
	{
		return m_arrSelectedPage;
	}
	void SetActivePage(int nPage);
	void EnsurePageVisible(int nPage = -1);
	void UpdateActivePage();
	void UpdateScrollBar(BOOL bUpdate = FALSE);

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAnimateList)
	public:
	virtual DROPEFFECT OnDragEnter(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point);
	virtual DROPEFFECT OnDragOver(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point);
	virtual BOOL OnDrop(COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point);
	virtual void OnDragLeave();
	virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo = NULL);
	virtual BOOL OnScroll(UINT nScrollCode, UINT nPos, BOOL bDoScroll = TRUE);
	protected:
	virtual void OnDraw(CDC* pDC);      // overridden to draw this view
	virtual void OnInitialUpdate();     // first time after construct
	virtual void PostNcDestroy();
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	//}}AFX_VIRTUAL

// Implementation
protected:
//	void ScrollToPosition(POINT pt);    // logical coordinates

	BOOL m_bUpdatingScrollBar;
	int m_nPagePending;
	CPoint m_ptDown;
	CIntArray m_arrSelectedPage;
	COleDropTarget m_oleDropTarget;
	int m_nInsertMarkPos;
	BOOL m_bDragging;
	int m_nPageHeight;
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

	// Generated message map functions
	//{{AFX_MSG(CAnimateList)
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message);
	afx_msg void OnNcMouseMove(UINT nHitTest, CPoint point);
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_ANIMATELIST_H__C723CB61_2B66_11D8_8BF6_0002553118A0__INCLUDED_)
